package wrapper;
/** 包装类的演示 */
public class IntegerDemo {
    public static void main(String[] args) {

        //演示包装类的定义
        //new方法创建包装类
        /*
        Integer i1 = new Integer(5);
        Integer i2 = new Integer(5);
        System.out.println(i1==i2);//false, ==比较的是地址
        System.out.println(i1.equals(i2));//true, 包装类重写了equals()比较的是值

        //valueOf()方法会复用1个字节(-128到127)范围内的数据, 建议使用valueOf()创建包装类
        Integer i3 = Integer.valueOf(5);
        Integer i4 = Integer.valueOf(5);
        System.out.println(i3==i4);//true, 若超出1个字节(-128到127)范围内的数据, 则为false
        System.out.println(i3.equals(i4));//true, 包装类重写了equals()比较的是值

         */

        //演示基本类型与包装类型之间的互转
        /*
        Integer i = Integer.valueOf(5);//基本类型转换为包装类型
        int j = i.intValue(); //包装类型转换为基本类型
         */


        //自动装箱演示
        /*
        Integer i = 5;//基本类型到包装类-----装箱, 触发了自动装箱特性, 会被编译为: Integer i = Integer.value(5);
        int j = i;//包装类到基本类型------拆箱, 触发了自动拆箱特性, 会被编译为 int j = i.value();
         */


        //演示包装类的常用操作:
        //1)可以通过包装类来获取基本类型的取值范围
        int max = Integer.MAX_VALUE;//获取int的最大值
        int min = Integer.MIN_VALUE;//获取int的最小值
        System.out.println("int的最大值为"+max+",最小值为"+min);

        long max1 = Long.MAX_VALUE;
        long min1 = Long.MIN_VALUE;
        System.out.println("long的最大值为"+max1+",最小值为"+min1);

        //2)包装类可以将字符串转换为对应的基本类型----必须熟练掌握
        String s1 = "40";
        int age = Integer.parseInt(s1);//将字符串s1转换为int类型并赋值给age
        System.out.println(age);//40---int类型

        String s2 = "123.456";
        double price = Double.parseDouble(s2);
        System.out.println(price);//123.456----double类型
    }
}
